package com.zjy.software.day8;

import com.zjy.software.day7.Run;

public class OutDemo {
    public static void main(String[] args) {
        OutDemo outDemo = new OutDemo();

        //演示通过外部类生成一个内部类对象
        OutDemo.Inner  inner=outDemo.new Inner();
        inner.show();

        outDemo.showOut();
    }
    public int age;
    private String name="zhangsan";
    public static String address;
    public void showOut(){
        System.out.println("show()");
        class InnerDog implements Run {
            @Override
            public void execute() {
                System.out.println("我是局部实现了Run接口的内部类 InnerDog.execute");
            }
        }
        Run innerDog=new InnerDog();
        innerDog.execute();

        //匿名类:这个类实现了一个接口,我只需要这个类就实现了这个接口的功能，不需要定义一个类,因为这个类只用了一次

//  内部类中的匿名类写法,不需要写类名,直接new 接口即可,然后再代码块中写接口中的实现方法即可.
    Run innerDogTmp=new Run() {
        @Override
        public void execute() {
            System.out.println("我是局部实现了Run接口的匿名类 InnerDog.execute");
        }
    };
    innerDogTmp.execute();


    }
    class Inner{
        public void show(){
            System.out.println("show()  name="+name);
        }
    }
}
